package ocio.actions;

import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import ocio.beans.Producto;
import ocio.beans.Proveedor;
import ocio.services.ProveedorService;
import ocio.services.ServiceLocator;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

/**
 * Clase destinataria de petición de información detallada sobre un Proveedor.
 * @author Esther García Galán
 * @author Rubén Gómez Vales
 * @version 1.0 13/05/2014
 * @see ocio.beans.Proveedor
 */
public class DetalleProveedorAction extends ActionSupport {

	private static final long serialVersionUID = 1L;
	private int id;
	private Set<Producto> listaProductos = new HashSet<Producto>();
	private Proveedor proveedor;
	private int rol;
	
    /**
	 * Método execute() de la clase ActionSupport de Struts 2. 
	 * Solicita los servicios para recuperar la información de un proveedor.
	 * @return un string que indica la respuesta de la acción ejecutada sobre la petición del usuario
	 */
	public String execute(){
		
		ServiceLocator serviceLocator = ServiceLocator.getServiceLocator();
		ProveedorService proveedorService = (ProveedorService)serviceLocator.getService("Proveedor");		

		proveedor = (Proveedor)proveedorService.searchById(id);
		listaProductos = proveedor.getProductos();
		this.setRol(3);
		
		Map<String,Object> sesion = ActionContext.getContext().getSession();
		sesion.remove("IDPROVEEDOR"); //Por si es admin el que venía de proveedor pero ahora 
		                              //está consultando este otro proveedor...
		sesion.put("IDPROVEEDOR",proveedor.getId());
		sesion.remove("TIPOPROVEEDOR");
		sesion.put("TIPOPROVEEDOR", proveedor.getTipo());
		
		
		return "success";
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public Proveedor getProveedor() {
		return proveedor;
	}

	public void setProveedor(Proveedor proveedor) {
		this.proveedor = proveedor;
	}

	public Set<Producto> getListaProductos() {
		return this.listaProductos;
	}

	public void setListaProductos(Set<Producto> listaProductos) {
		this.listaProductos = listaProductos;
	}

	public int getRol() {
		return rol;
	}

	public void setRol(int rol) {
		this.rol = rol;
	}

}
